package com.workManager.mapper;

import com.workManager.pojo.TbProjectCost;
import com.workManager.pojo.TbProjectCostExample;
import com.workManager.pojo.TbSalary;
import com.workManager.vo.CostTrendsVo;
import com.workManager.vo.ProjectLaborCostVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
public interface TbProjectCostMapper {
    int countByExample(TbProjectCostExample example);

    int deleteByExample(TbProjectCostExample example);

    int deleteByPrimaryKey(Integer costId);

    int insert(TbProjectCost record);

    int insertSelective(TbProjectCost record);

    List<TbProjectCost> selectByExample(TbProjectCostExample example);

    TbProjectCost selectByPrimaryKey(Integer costId);

    TbProjectCost selectByOrgWithMonthAndProject(@Param("orgId")Integer orgId, @Param("salMonth")String salMonth, @Param("proId")Integer proId);

    int updateByExampleSelective(@Param("record") TbProjectCost record, @Param("example") TbProjectCostExample example);

    int updateByExample(@Param("record") TbProjectCost record, @Param("example") TbProjectCostExample example);

    int updateByPrimaryKeySelective(TbProjectCost record);

    int updateByPrimaryKey(TbProjectCost record);

    List<ProjectLaborCostVO> countLaberCost(@Param("cm") Map<String, Object> queryParam);

    List<CostTrendsVo> countLaberCostByProjectIds(@Param("cm") Map<String, Object> queryParam);

    void deleteByConditions(@Param("cm")Map<String, Object> conditionMap);
}